<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        
    </style>
</head>
<body>
    
</body>
<script>
    // 注意参数的处理（新语法）
    let remove = ({origin=[], start=0, num=0, data}={})=>{
        // 要求：data不能为undefined，为undefined时等同于没传
        // 要求：start和num不能为负数，最小为0

        // 如果需要插入新数据
        if(data !== undefined){
            switch(num){
                case 0:
                    // 向后挪一位
                    for(let i=origin.length;i>start;i--){
                        arr[i] = arr[i-1];
                    }
                    // 将新数据插入到指定位置
                    origin[start] = data;
                    break;
                case 1:
                    // 直接将新数据插入到指定位置
                    origin[start] = data;
                    break;
                default:
                    // 先向前挪num-1位
                    for(let j=0;j<num-1;j++){
                        for(let i=start;i<origin.length;i++){
                            arr[i] = arr[i+1];
                        }
                    }
                    // 将新数据插入到指定位置
                    origin[start] = data;
                    // 减去(num-1)个数组长度
                    origin.length -= (num-1);
            }
        }else{
            // 不需要插入新数据
            // 向前挪num位
            for(let j=0;j<num;j++){
                for(let i=start;i<origin.length;i++){
                    arr[i] = arr[i+1];
                }
            }
            // 减少num个数组长度
            origin.length -= num;
        }
    }
    var arr = [3,4,5,6,7,8,9];
    console.log(arr);

    remove({
        origin:arr,
        start: 1,
        num:4,
        data:"hello"
    })

    console.log(arr);
    
</script>
</html>